#ifndef GAMETD_BULLETMANAGER_H
#define GAMETD_BULLETMANAGER_H

#include <vector>
#include "Bullet.h"
#include "Manager.h"
#include "BulletType.h"

class BulletManager : public Manager<BulletManager> {
    friend class Manager<BulletManager>;

public:
    void OnUpdate(double delta);
    void OnRender(SDL_Renderer *renderer);
    std::vector<Bullet *> &GetBulletList();
    void FireBullet(BulletType type, const Vector2 &position, const Vector2 &velocity, double damage);

protected:
    BulletManager() = default;
    ~BulletManager();

private:
    std::vector<Bullet *> bulletList;
};


#endif // GAMETD_BULLETMANAGER_H
